LIETUVOS JURIDINIŲ ASMENŲ BALANSO ANALIZ˶

dangoraizis.jpg

1. HIPOTEZ˶

Juridiniai asmenys, kurie turi didesnį įstatinį kapitalą ir didesnį balansą, uždirba didesnį pelną bei gali pasisamdyti aukštesnės kvalifikacijos darbuotojus, mokėdami didesnį darbo užmokestį

2. UŽDAVINIAI¶

2.1 Paanalizuoti juridinių asmenų balansą pagal įstatinį kapitalą bei balanso dydį

2.2 Paanalizuoti juridinių asmenų balansą pagal pelną

2.3 Paanalizuoti juridinių asmenų balansą pagal darbo užmokestį

3. ANALIZ˶

Importuojami Pythono libraries numpy, pandas, matplotlib, seaborn

In [223]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

¶

3.1 Importuojami failai, kurių duomenys naudojami analizei atlikti, atspausdinamos pirmos arba paskutinės 2 eilutės, siekant įsitikinti, kad duomenų importas tinkamai veikia¶

In [120]:
ist_kapitalas = pd.read_csv('REGISTRU_CENTRAS_JAR_KAPITALAS.csv', index_col=0, delimiter='|')
ist_kapitalas.head(2)
Out[120]:
ja_pavadinimas form_kodas form_pavadinimas ist_kap_nuo ist_kapitalas valiuta formavimo_data
ja_kodas
110001436 UŽDAROJI AKCINĖ BENDROVĖ "LAMARING" 310 Uždaroji akcinė bendrovė 1995-02-24 10000.00 Lt 2024-07-17
110003978 Uždaroji akcinė bendrovė "Lietkompexim" 310 Uždaroji akcinė bendrovė 2016-05-26 1392802.24 Eur 2024-07-17
In [73]:
balansas = pd.read_csv('REGISTRU_CENTRAS_JAR_FA_RODIKLIAI_BLNS_2023.csv', index_col=0, delimiter='|')
balansas.tail(2)
Out[73]:
obj_pav form_kodas stat_statusas template_id template_name standard_id standard_name laikotarpis_nuo laikotarpis_iki reg_date nuosavas_kapitalas mok_sumos_ir_isipareigojimai ilgalaikis_turtas trumpalaikis_turtas formavimo_data
obj_kodas
306650207 Procesų Laboratorija, MB 960 0 FS0422 Mažųjų bendrijų finansinių ataskaitų rinkinys BST217 BALANSAS (Neribotos civilinės atsakomybės juri... 2023-12-29 2023-12-31 2024-04-15 0.00 NaN 0.00 0.00 2024-07-15
306650214 VšĮ "Veritas et musica" 570 0 FS0134 Pelno nesiekiančių JA metinės ataskaitos rinkinys BST026 METINĖS ATASKAITOS DUOMENYS 2023-12-29 2023-12-31 2024-04-10 0.00 NaN NaN NaN 2024-07-15
In [121]:
pelnas_nuostolis = pd.read_csv('REGISTRU_CENTRAS_JAR_FA_RODIKLIAI_PLNA_2023.csv', index_col=0, delimiter='|')
pelnas_nuostolis.head(2)
Out[121]:
obj_pav form_kodas form_pav stat_statusas stat_pav template_id template_name standard_id standard_name laikotarpis_nuo laikotarpis_iki reg_date pelnas_pries_apmokestinima grynasis_pelnas pardavimo_pajamos formavimo_data
obj_kodas
110003978 Uždaroji akcinė bendrovė "Lietkompexim" 310 Uždaroji akcinė bendrovė 0 Teisinis stat neįregistruotas FS0229 Mažų ir labai mažų įmonių, netaikančių išimčių... IST024 PELNO (NUOSTOLIŲ) ATASKAITA 2022-01-01 2022-12-31 2023-05-24 15420.00 13104.00 65196.00 2024-07-15
110004884 Uždaroji akcinė bendrovė "VILLON" 310 Uždaroji akcinė bendrovė 0 Teisinis stat neįregistruotas FS0618 Atskirosios finansinės būklės ataskaitos duomenys IST209 PELNO (NUOSTOLIŲ) ATASKAITA (sąnaudų paskirties) 2022-01-01 2022-12-31 2023-06-30 -824210.00 NaN 8359577.00 2024-07-15
In [122]:
sodra_darbo_uzmokestis = pd.read_csv(
    'SODRA_monthly_2023.csv', index_col=0, delimiter=';',
    on_bad_lines='skip',  # praleisk eilutes su klaidomis
    encoding='utf-8'  # pritaikyk utf 8, jei to reikės
)
sodra_darbo_uzmokestis.tail(2)
Out[122]:
Juridinių asmenų registro kodas (jarCode) Pavadinimas (name) Savivaldybė, kurioje registruota(municipality) Ekonominės veiklos rūšies kodas(ecoActCode) Ekonominės veiklos rūšies pavadinimas(ecoActName) Mėnuo (month) Vidutinis darbo užmokestis (avgWage) Apdraustųjų skaičius (numInsured) Vidutinis darbo užmokestis II (avgWage2) Apdraustųjų skaičius II (numInsured2) Valstybinio socialinio draudimo įmoka (tax)
Draudėjo kodas (code)
4171326 306638735.00 UAB "YR HOLDINGAS LT" Vilniaus m. sav. NaN NaN 202311 NaN 1 NaN 0 NaN
4171326 306638735.00 UAB "YR HOLDINGAS LT" Vilniaus m. sav. NaN NaN 202312 NaN 1 NaN 0 NaN

¶

3.2 Pakeičiamas duomenų tipas lentelėje 'sodra_darbo_uzmokestis', stulpelyje 'Juridinių asmenų registro kodas (jarCode)' į integer¶

In [123]:
sodra_darbo_uzmokestis['Juridinių asmenų registro kodas (jarCode)'] = sodra_darbo_uzmokestis['Juridinių asmenų registro kodas (jarCode)'].astype('Int64')
sodra_darbo_uzmokestis.tail(2)
Out[123]:
Juridinių asmenų registro kodas (jarCode) Pavadinimas (name) Savivaldybė, kurioje registruota(municipality) Ekonominės veiklos rūšies kodas(ecoActCode) Ekonominės veiklos rūšies pavadinimas(ecoActName) Mėnuo (month) Vidutinis darbo užmokestis (avgWage) Apdraustųjų skaičius (numInsured) Vidutinis darbo užmokestis II (avgWage2) Apdraustųjų skaičius II (numInsured2) Valstybinio socialinio draudimo įmoka (tax)
Draudėjo kodas (code)
4171326 306638735 UAB "YR HOLDINGAS LT" Vilniaus m. sav. NaN NaN 202311 NaN 1 NaN 0 NaN
4171326 306638735 UAB "YR HOLDINGAS LT" Vilniaus m. sav. NaN NaN 202312 NaN 1 NaN 0 NaN

¶

3.3 Pakeičiamas stulpelio pavadinimas lentelėje 'sodra_darbo_uzmokestis', stulpelyje 'Juridinių asmenų registro kodas (jarCode)' į 'ja_kodas'¶

In [124]:
sodra_darbo_uzmokestis = sodra_darbo_uzmokestis.rename(columns={'Juridinių asmenų registro kodas (jarCode)': 'ja_kodas'})

sodra_darbo_uzmokestis.head(2)
Out[124]:
ja_kodas Pavadinimas (name) Savivaldybė, kurioje registruota(municipality) Ekonominės veiklos rūšies kodas(ecoActCode) Ekonominės veiklos rūšies pavadinimas(ecoActName) Mėnuo (month) Vidutinis darbo užmokestis (avgWage) Apdraustųjų skaičius (numInsured) Vidutinis darbo užmokestis II (avgWage2) Apdraustųjų skaičius II (numInsured2) Valstybinio socialinio draudimo įmoka (tax)
Draudėjo kodas (code)
42399 <NA> LATVIJOS RESPUBLIKOS AMBASADA Vilniaus m. sav. NaN NaN 202301 NaN 3 NaN 0 NaN
45838 <NA> GOETHE-INSTITUT Vilniaus m. sav. NaN NaN 202301 1651.63 11 NaN 0 4009.89

¶

3.4 Pirmasis lentelių stulpelis nespausdinamas, dėl to nepavyksta sujungti visų lentelių per juridinio asmens kodą. Visoms lentelėms pakeičiamas indekso stulpelis panaudojant reset_index¶

In [125]:
print(ist_kapitalas.columns)
Index(['ja_pavadinimas', 'form_kodas', 'form_pavadinimas', 'ist_kap_nuo',
       'ist_kapitalas', 'valiuta', 'formavimo_data'],
      dtype='object')
In [132]:
ist_kapitalas = ist_kapitalas.reset_index()
In [137]:
print(ist_kapitalas.columns)
Index(['ja_kodas', 'ja_pavadinimas', 'form_kodas', 'form_pavadinimas',
       'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data'],
      dtype='object')
In [96]:
print(balansas.columns)
Index(['obj_pav', 'form_kodas', 'stat_statusas', 'template_id',
       'template_name', 'standard_id', 'standard_name', 'laikotarpis_nuo',
       'laikotarpis_iki', 'reg_date', 'nuosavas_kapitalas',
       'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas',
       'trumpalaikis_turtas', 'formavimo_data'],
      dtype='object')
In [133]:
balansas = balansas.reset_index()
In [128]:
print(balansas.columns)
Index(['index', 'obj_kodas', 'obj_pav', 'form_kodas', 'stat_statusas',
       'template_id', 'template_name', 'standard_id', 'standard_name',
       'laikotarpis_nuo', 'laikotarpis_iki', 'reg_date', 'nuosavas_kapitalas',
       'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas',
       'trumpalaikis_turtas', 'formavimo_data'],
      dtype='object')
In [99]:
print(pelnas_nuostolis.columns)
Index(['obj_pav', 'form_kodas', 'form_pav', 'stat_statusas', 'stat_pav',
       'template_id', 'template_name', 'standard_id', 'standard_name',
       'laikotarpis_nuo', 'laikotarpis_iki', 'reg_date',
       'pelnas_pries_apmokestinima', 'grynasis_pelnas', 'pardavimo_pajamos',
       'formavimo_data'],
      dtype='object')
In [134]:
pelnas_nuostolis = pelnas_nuostolis.reset_index()
In [101]:
print(pelnas_nuostolis.columns)
Index(['obj_kodas', 'obj_pav', 'form_kodas', 'form_pav', 'stat_statusas',
       'stat_pav', 'template_id', 'template_name', 'standard_id',
       'standard_name', 'laikotarpis_nuo', 'laikotarpis_iki', 'reg_date',
       'pelnas_pries_apmokestinima', 'grynasis_pelnas', 'pardavimo_pajamos',
       'formavimo_data'],
      dtype='object')
In [103]:
print(sodra_darbo_uzmokestis.columns)
Index(['ja_kodas', 'Pavadinimas (name)',
       'Savivaldybė, kurioje registruota(municipality)',
       'Ekonominės veiklos rūšies kodas(ecoActCode)',
       'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)',
       'Vidutinis darbo užmokestis (avgWage)',
       'Apdraustųjų skaičius (numInsured)',
       'Vidutinis darbo užmokestis II (avgWage2)',
       'Apdraustųjų skaičius II (numInsured2)',
       'Valstybinio socialinio draudimo įmoka (tax)'],
      dtype='object')
In [135]:
sodra_darbo_uzmokestis = sodra_darbo_uzmokestis.reset_index()
In [105]:
print(sodra_darbo_uzmokestis.columns)
Index(['Draudėjo kodas (code)', 'ja_kodas', 'Pavadinimas (name)',
       'Savivaldybė, kurioje registruota(municipality)',
       'Ekonominės veiklos rūšies kodas(ecoActCode)',
       'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)',
       'Vidutinis darbo užmokestis (avgWage)',
       'Apdraustųjų skaičius (numInsured)',
       'Vidutinis darbo užmokestis II (avgWage2)',
       'Apdraustųjų skaičius II (numInsured2)',
       'Valstybinio socialinio draudimo įmoka (tax)'],
      dtype='object')

¶

3.5 Sujungiamos visos lentelės panaudojant juridinio asmens kodą¶

In [240]:
# Sujungiamos lentelės ist_kapitalas ir balansas per stulpelius 'ja_kodas' ir 'obj_kodas'
sujungtos_lentelės = pd.merge(ist_kapitalas, balansas, left_on='ja_kodas', right_on='obj_kodas', how='inner')

# Prie sujungtų lentelių prijungiama lentelė pelnas_nuostolis per stulpelį 'obj_kodas'
sujungtos_lentelės = pd.merge(sujungtos_lentelės, pelnas_nuostolis, on='obj_kodas', how='inner')

# Prie sujungtų lentelių prijungiama lentelė sodra_darbo_uzmokestis per stulpelį 'ja_kodas'
sujungtos_lentelės = pd.merge(sujungtos_lentelės, sodra_darbo_uzmokestis, on='ja_kodas', how='inner')

#Išspausdinamas rezultatas, 2 pirmos eilutės
print(sujungtos_lentelės.head(2))

#Išspausdinami visų stulpelių pavadinimai sujungtoje lentelėje
print(sujungtos_lentelės.columns)
    ja_kodas                           ja_pavadinimas  form_kodas_x  \
0  110003978  Uždaroji akcinė bendrovė "Lietkompexim"           310   
1  110003978  Uždaroji akcinė bendrovė "Lietkompexim"           310   

           form_pavadinimas ist_kap_nuo  ist_kapitalas valiuta  \
0  Uždaroji akcinė bendrovė  2016-05-26     1392802.24     Eur   
1  Uždaroji akcinė bendrovė  2016-05-26     1392802.24     Eur   

  formavimo_data_x  level_0  index_x  ...  \
0       2024-07-17        0        0  ...   
1       2024-07-17        0        0  ...   

                      Pavadinimas (name)  \
0  UŽDAROJI AKCINĖ BENDROVĖ LIETKOMPEXIM   
1  UŽDAROJI AKCINĖ BENDROVĖ LIETKOMPEXIM   

  Savivaldybė, kurioje registruota(municipality)  \
0                               Vilniaus m. sav.   
1                               Vilniaus m. sav.   

   Ekonominės veiklos rūšies kodas(ecoActCode)  \
0                                    682000.00   
1                                    682000.00   

   Ekonominės veiklos rūšies pavadinimas(ecoActName) Mėnuo (month)  \
0  Nuosavo arba nuomojamo nekilnojamojo turto nuo...        202301   
1  Nuosavo arba nuomojamo nekilnojamojo turto nuo...        202302   

  Vidutinis darbo užmokestis (avgWage) Apdraustųjų skaičius (numInsured)  \
0                                  NaN                                 2   
1                                  NaN                                 2   

  Vidutinis darbo užmokestis II (avgWage2)  \
0                                      NaN   
1                                      NaN   

  Apdraustųjų skaičius II (numInsured2)  \
0                                     0   
1                                     0   

  Valstybinio socialinio draudimo įmoka (tax)  
0                                         NaN  
1                                         NaN  

[2 rows x 55 columns]
Index(['ja_kodas', 'ja_pavadinimas', 'form_kodas_x', 'form_pavadinimas',
       'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data_x',
       'level_0', 'index_x', 'obj_kodas', 'obj_pav_x', 'form_kodas_y',
       'stat_statusas_x', 'template_id_x', 'template_name_x', 'standard_id_x',
       'standard_name_x', 'laikotarpis_nuo_x', 'laikotarpis_iki_x',
       'reg_date_x', 'nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai',
       'ilgalaikis_turtas', 'trumpalaikis_turtas', 'formavimo_data_y',
       'index_y', 'obj_pav_y', 'form_kodas', 'form_pav', 'stat_statusas_y',
       'stat_pav', 'template_id_y', 'template_name_y', 'standard_id_y',
       'standard_name_y', 'laikotarpis_nuo_y', 'laikotarpis_iki_y',
       'reg_date_y', 'pelnas_pries_apmokestinima', 'grynasis_pelnas',
       'pardavimo_pajamos', 'formavimo_data', 'index', 'Draudėjo kodas (code)',
       'Pavadinimas (name)', 'Savivaldybė, kurioje registruota(municipality)',
       'Ekonominės veiklos rūšies kodas(ecoActCode)',
       'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)',
       'Vidutinis darbo užmokestis (avgWage)',
       'Apdraustųjų skaičius (numInsured)',
       'Vidutinis darbo užmokestis II (avgWage2)',
       'Apdraustųjų skaičius II (numInsured2)',
       'Valstybinio socialinio draudimo įmoka (tax)'],
      dtype='object')

¶

3.6 Ištrinti stulpelius, kur pasikartoja reikšmės arba kurių tikrai nereikės šioje analizėje¶

In [241]:
columns_to_drop = ['obj_kodas', 'obj_pav_x', 'Pavadinimas (name)', 'Valstybinio socialinio draudimo įmoka (tax)', 'Draudėjo kodas (code)']
sujungtos_lentelės.drop(columns=columns_to_drop, inplace=True)

#Išspausdinamas rezultatas, 2 pirmos eilutės
print(sujungtos_lentelės.head(2))

#Išspausdinami visų stulpelių pavadinimai sujungtoje lentelėje
print(sujungtos_lentelės.columns)
    ja_kodas                           ja_pavadinimas  form_kodas_x  \
0  110003978  Uždaroji akcinė bendrovė "Lietkompexim"           310   
1  110003978  Uždaroji akcinė bendrovė "Lietkompexim"           310   

           form_pavadinimas ist_kap_nuo  ist_kapitalas valiuta  \
0  Uždaroji akcinė bendrovė  2016-05-26     1392802.24     Eur   
1  Uždaroji akcinė bendrovė  2016-05-26     1392802.24     Eur   

  formavimo_data_x  level_0  index_x  ...  formavimo_data  index  \
0       2024-07-17        0        0  ...      2024-07-15   7400   
1       2024-07-17        0        0  ...      2024-07-15   7401   

  Savivaldybė, kurioje registruota(municipality)  \
0                               Vilniaus m. sav.   
1                               Vilniaus m. sav.   

  Ekonominės veiklos rūšies kodas(ecoActCode)  \
0                                   682000.00   
1                                   682000.00   

   Ekonominės veiklos rūšies pavadinimas(ecoActName) Mėnuo (month)  \
0  Nuosavo arba nuomojamo nekilnojamojo turto nuo...        202301   
1  Nuosavo arba nuomojamo nekilnojamojo turto nuo...        202302   

  Vidutinis darbo užmokestis (avgWage) Apdraustųjų skaičius (numInsured)  \
0                                  NaN                                 2   
1                                  NaN                                 2   

  Vidutinis darbo užmokestis II (avgWage2)  \
0                                      NaN   
1                                      NaN   

   Apdraustųjų skaičius II (numInsured2)  
0                                      0  
1                                      0  

[2 rows x 50 columns]
Index(['ja_kodas', 'ja_pavadinimas', 'form_kodas_x', 'form_pavadinimas',
       'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data_x',
       'level_0', 'index_x', 'form_kodas_y', 'stat_statusas_x',
       'template_id_x', 'template_name_x', 'standard_id_x', 'standard_name_x',
       'laikotarpis_nuo_x', 'laikotarpis_iki_x', 'reg_date_x',
       'nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai',
       'ilgalaikis_turtas', 'trumpalaikis_turtas', 'formavimo_data_y',
       'index_y', 'obj_pav_y', 'form_kodas', 'form_pav', 'stat_statusas_y',
       'stat_pav', 'template_id_y', 'template_name_y', 'standard_id_y',
       'standard_name_y', 'laikotarpis_nuo_y', 'laikotarpis_iki_y',
       'reg_date_y', 'pelnas_pries_apmokestinima', 'grynasis_pelnas',
       'pardavimo_pajamos', 'formavimo_data', 'index',
       'Savivaldybė, kurioje registruota(municipality)',
       'Ekonominės veiklos rūšies kodas(ecoActCode)',
       'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)',
       'Vidutinis darbo užmokestis (avgWage)',
       'Apdraustųjų skaičius (numInsured)',
       'Vidutinis darbo užmokestis II (avgWage2)',
       'Apdraustųjų skaičius II (numInsured2)'],
      dtype='object')

¶

3.7 Pridedamas stulpelis 'balansas_viso'¶

In [242]:
# Pridedamas stulpelis 'balansas_viso', kuris yra suma dviejų stuleplių reikšmių:'ilgalaikis_turtas' ir 'trumpalaikis_turtas'
sujungtos_lentelės['balansas_viso'] = sujungtos_lentelės['ilgalaikis_turtas'] + sujungtos_lentelės['trumpalaikis_turtas']


#Išspausdinamas rezultatas, 20 pirmų eilučių, kur yra 'ilgalaikis_turtas', 'trumpalaikis_turtas' ir 'balansas_viso'
print(sujungtos_lentelės.loc[0:19, ['ilgalaikis_turtas', 'trumpalaikis_turtas', 'balansas_viso', 'laikotarpis_nuo_x', 'laikotarpis_iki_x']])

#Išspausdinami visų stulpelių pavadinimai sujungtoje lentelėje
print(sujungtos_lentelės.columns)
    ilgalaikis_turtas  trumpalaikis_turtas  balansas_viso laikotarpis_nuo_x  \
0           657695.00           1105067.00     1762762.00        2022-01-01   
1           657695.00           1105067.00     1762762.00        2022-01-01   
2           657695.00           1105067.00     1762762.00        2022-01-01   
3           657695.00           1105067.00     1762762.00        2022-01-01   
4           657695.00           1105067.00     1762762.00        2022-01-01   
5           657695.00           1105067.00     1762762.00        2022-01-01   
6           657695.00           1105067.00     1762762.00        2022-01-01   
7           657695.00           1105067.00     1762762.00        2022-01-01   
8           657695.00           1105067.00     1762762.00        2022-01-01   
9           657695.00           1105067.00     1762762.00        2022-01-01   
10          657695.00           1105067.00     1762762.00        2022-01-01   
11          657695.00           1105067.00     1762762.00        2022-01-01   
12          666700.00           1370540.00     2037240.00        2023-01-01   
13          666700.00           1370540.00     2037240.00        2023-01-01   
14          666700.00           1370540.00     2037240.00        2023-01-01   
15          666700.00           1370540.00     2037240.00        2023-01-01   
16          666700.00           1370540.00     2037240.00        2023-01-01   
17          666700.00           1370540.00     2037240.00        2023-01-01   
18          666700.00           1370540.00     2037240.00        2023-01-01   
19          666700.00           1370540.00     2037240.00        2023-01-01   

   laikotarpis_iki_x  
0         2022-12-31  
1         2022-12-31  
2         2022-12-31  
3         2022-12-31  
4         2022-12-31  
5         2022-12-31  
6         2022-12-31  
7         2022-12-31  
8         2022-12-31  
9         2022-12-31  
10        2022-12-31  
11        2022-12-31  
12        2023-12-31  
13        2023-12-31  
14        2023-12-31  
15        2023-12-31  
16        2023-12-31  
17        2023-12-31  
18        2023-12-31  
19        2023-12-31  
Index(['ja_kodas', 'ja_pavadinimas', 'form_kodas_x', 'form_pavadinimas',
       'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data_x',
       'level_0', 'index_x', 'form_kodas_y', 'stat_statusas_x',
       'template_id_x', 'template_name_x', 'standard_id_x', 'standard_name_x',
       'laikotarpis_nuo_x', 'laikotarpis_iki_x', 'reg_date_x',
       'nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai',
       'ilgalaikis_turtas', 'trumpalaikis_turtas', 'formavimo_data_y',
       'index_y', 'obj_pav_y', 'form_kodas', 'form_pav', 'stat_statusas_y',
       'stat_pav', 'template_id_y', 'template_name_y', 'standard_id_y',
       'standard_name_y', 'laikotarpis_nuo_y', 'laikotarpis_iki_y',
       'reg_date_y', 'pelnas_pries_apmokestinima', 'grynasis_pelnas',
       'pardavimo_pajamos', 'formavimo_data', 'index',
       'Savivaldybė, kurioje registruota(municipality)',
       'Ekonominės veiklos rūšies kodas(ecoActCode)',
       'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)',
       'Vidutinis darbo užmokestis (avgWage)',
       'Apdraustųjų skaičius (numInsured)',
       'Vidutinis darbo užmokestis II (avgWage2)',
       'Apdraustųjų skaičius II (numInsured2)', 'balansas_viso'],
      dtype='object')

¶

3.8 Pašalinami dublikatai¶

In [ ]:
sujungtos_lentelės = sujungtos_lentelės.drop_duplicates()
In [156]:
#Išspausdinamas rezultatas, 20 pirmų eilučių, kur yra 'ilgalaikis_turtas', 'trumpalaikis_turtas' ir 'balansas_viso'
print(sujungtos_lentelės.loc[0:19, ['ilgalaikis_turtas', 'trumpalaikis_turtas', 'balansas_viso', 'laikotarpis_nuo_x', 'laikotarpis_iki_x']])

#Išspausdinami visų stulpelių pavadinimai sujungtoje lentelėje
print(sujungtos_lentelės.columns)
    ilgalaikis_turtas  trumpalaikis_turtas  balansas_viso laikotarpis_nuo_x  \
0           657695.00           1105067.00     1762762.00        2022-01-01   
1           657695.00           1105067.00     1762762.00        2022-01-01   
2           657695.00           1105067.00     1762762.00        2022-01-01   
3           657695.00           1105067.00     1762762.00        2022-01-01   
4           657695.00           1105067.00     1762762.00        2022-01-01   
5           657695.00           1105067.00     1762762.00        2022-01-01   
6           657695.00           1105067.00     1762762.00        2022-01-01   
7           657695.00           1105067.00     1762762.00        2022-01-01   
8           657695.00           1105067.00     1762762.00        2022-01-01   
9           657695.00           1105067.00     1762762.00        2022-01-01   
10          657695.00           1105067.00     1762762.00        2022-01-01   
11          657695.00           1105067.00     1762762.00        2022-01-01   
12          666700.00           1370540.00     2037240.00        2023-01-01   
13          666700.00           1370540.00     2037240.00        2023-01-01   
14          666700.00           1370540.00     2037240.00        2023-01-01   
15          666700.00           1370540.00     2037240.00        2023-01-01   
16          666700.00           1370540.00     2037240.00        2023-01-01   
17          666700.00           1370540.00     2037240.00        2023-01-01   
18          666700.00           1370540.00     2037240.00        2023-01-01   
19          666700.00           1370540.00     2037240.00        2023-01-01   

   laikotarpis_iki_x  
0         2022-12-31  
1         2022-12-31  
2         2022-12-31  
3         2022-12-31  
4         2022-12-31  
5         2022-12-31  
6         2022-12-31  
7         2022-12-31  
8         2022-12-31  
9         2022-12-31  
10        2022-12-31  
11        2022-12-31  
12        2023-12-31  
13        2023-12-31  
14        2023-12-31  
15        2023-12-31  
16        2023-12-31  
17        2023-12-31  
18        2023-12-31  
19        2023-12-31  
Index(['ja_kodas', 'ja_pavadinimas', 'form_kodas_x', 'form_pavadinimas',
       'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data_x',
       'level_0', 'index_x', 'form_kodas_y', 'stat_statusas_x',
       'template_id_x', 'template_name_x', 'standard_id_x', 'standard_name_x',
       'laikotarpis_nuo_x', 'laikotarpis_iki_x', 'reg_date_x',
       'nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai',
       'ilgalaikis_turtas', 'trumpalaikis_turtas', 'formavimo_data_y',
       'index_y', 'obj_pav_y', 'form_kodas', 'form_pav', 'stat_statusas_y',
       'stat_pav', 'template_id_y', 'template_name_y', 'standard_id_y',
       'standard_name_y', 'laikotarpis_nuo_y', 'laikotarpis_iki_y',
       'reg_date_y', 'pelnas_pries_apmokestinima', 'grynasis_pelnas',
       'pardavimo_pajamos', 'formavimo_data', 'index',
       'Savivaldybė, kurioje registruota(municipality)',
       'Ekonominės veiklos rūšies kodas(ecoActCode)',
       'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)',
       'Vidutinis darbo užmokestis (avgWage)',
       'Apdraustųjų skaičius (numInsured)',
       'Vidutinis darbo užmokestis II (avgWage2)',
       'Apdraustųjų skaičius II (numInsured2)', 'balansas_viso',
       'ist_kapitalas_ekv_eur'],
      dtype='object')

¶

3.9 Pridedamas stulpelis, kur perskaičiuojamas įstatinis kapitalas į Eur ten, kur vertės Ltl arba lieka Eur, jei vertė buvo Eur. Taip pat pridedamas stulpelis valiutai ekvivalentu¶

In [244]:
#Pridedamas stulpelis 'ist_kapitalas_ekv_eur', kur perskaičiuojamas įstatinis kapitalas į Eur ten, kur vertės Ltl arba lieka Eur, jei vertė buvo Eur. 
#Jei daroma kalkuliacija iš Ltl į Eur, tada apvalinami 2 skaičiai po kablelio
sujungtos_lentelės['ist_kapitalas_ekv_eur'] = np.where(
    sujungtos_lentelės['valiuta'] == 'Eur',
    sujungtos_lentelės['ist_kapitalas'],
    (sujungtos_lentelės['ist_kapitalas'] / 3.4528).round(2)
)
In [246]:
#Taip pat pridedamas stulpelis 'valiuta_eur', kur įrašoma valiuyta Eur į visus laukelius
sujungtos_lentelės['valiuta_eur'] = 'Eur'
In [247]:
#Išspausdinamas rezultatas, 20 pirmų eilučių, kur yra 'ilgalaikis_turtas', 'trumpalaikis_turtas' ir 'balansas_viso'
print(sujungtos_lentelės.loc[0:5899, ['ist_kapitalas', 'valiuta', 'ist_kapitalas_ekv_eur', 'valiuta_eur']])

#Išspausdinami visų stulpelių pavadinimai sujungtoje lentelėje
print(sujungtos_lentelės.columns)
      ist_kapitalas valiuta  ist_kapitalas_ekv_eur valiuta_eur
0        1392802.24     Eur             1392802.24         Eur
1        1392802.24     Eur             1392802.24         Eur
2        1392802.24     Eur             1392802.24         Eur
3        1392802.24     Eur             1392802.24         Eur
4        1392802.24     Eur             1392802.24         Eur
...             ...     ...                    ...         ...
5895      426292.00     Eur              426292.00         Eur
5896      426292.00     Eur              426292.00         Eur
5897      426292.00     Eur              426292.00         Eur
5898      426292.00     Eur              426292.00         Eur
5899      426292.00     Eur              426292.00         Eur

[5900 rows x 4 columns]
Index(['ja_kodas', 'ja_pavadinimas', 'form_kodas_x', 'form_pavadinimas',
       'ist_kap_nuo', 'ist_kapitalas', 'valiuta', 'formavimo_data_x',
       'level_0', 'index_x', 'form_kodas_y', 'stat_statusas_x',
       'template_id_x', 'template_name_x', 'standard_id_x', 'standard_name_x',
       'laikotarpis_nuo_x', 'laikotarpis_iki_x', 'reg_date_x',
       'nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai',
       'ilgalaikis_turtas', 'trumpalaikis_turtas', 'formavimo_data_y',
       'index_y', 'obj_pav_y', 'form_kodas', 'form_pav', 'stat_statusas_y',
       'stat_pav', 'template_id_y', 'template_name_y', 'standard_id_y',
       'standard_name_y', 'laikotarpis_nuo_y', 'laikotarpis_iki_y',
       'reg_date_y', 'pelnas_pries_apmokestinima', 'grynasis_pelnas',
       'pardavimo_pajamos', 'formavimo_data', 'index',
       'Savivaldybė, kurioje registruota(municipality)',
       'Ekonominės veiklos rūšies kodas(ecoActCode)',
       'Ekonominės veiklos rūšies pavadinimas(ecoActName)', 'Mėnuo (month)',
       'Vidutinis darbo užmokestis (avgWage)',
       'Apdraustųjų skaičius (numInsured)',
       'Vidutinis darbo užmokestis II (avgWage2)',
       'Apdraustųjų skaičius II (numInsured2)', 'balansas_viso',
       'ist_kapitalas_ekv_eur', 'valiuta_eur'],
      dtype='object')
In [248]:
# Filtruok eilutes kur stulpelyje 'valiuta' yra 'Ltl'
filtruotos_eilutes = sujungtos_lentelės[sujungtos_lentelės['valiuta'] == 'Ltl']

# Išspausdink tik 5 eilutes, kur stulpelyje 'valiuta' yra 'Ltl'
print(filtruotos_eilutes.loc[:, ['ist_kapitalas', 'valiuta', 'ist_kapitalas_ekv_eur', 'valiuta_eur']].head(5))
Empty DataFrame
Columns: [ist_kapitalas, valiuta, ist_kapitalas_ekv_eur, valiuta_eur]
Index: []

¶

3.10 Atspausdinama stulpelių minianalizė.¶

In [236]:
#nustatoma, kad rodytų ne 'scientific' formatu (t.y. ne tokiu formatu: 1.188635e+05)
pd.options.display.float_format = '{:.2f}'.format
#parenkama, kurio stulpelio statistiką rodyti
#ist_kapitalas_column = ist_kapitalas['ist_kapitalas']
ist_kapitalas_column = ist_kapitalas[['ist_kapitalas']]
#nurodoma komanda, kad rodytų statistiką, apvalinama 2 skaičiai po kablelio
ist_kapitalas_statistika = ist_kapitalas_column.describe().round(2)
#atspausdinama statistika
print(ist_kapitalas_statistika)
#pavyzdys, kodėl nuspręsta neimti visų stulpelių
#ist_kapitalas.describe()
       ist_kapitalas
count      106110.00
mean       368220.60
std      16130416.78
min             2.00
25%          2500.00
50%          2896.00
75%         10000.00
max    4222910000.00
In [48]:
#nustatoma, kad rodytų ne 'scientific' formatu (t.y. ne tokiu formatu: 1.188635e+05)
pd.options.display.float_format = '{:.2f}'.format
#parenkama, kurių stulpelių statistiką rodyti
balansas_columns = balansas[['nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas',	'trumpalaikis_turtas']]
#nurodoma komanda, kad rodytų statistiką, apvalinama 2 skaičiai po kablelio
balanso_statistika = balansas_columns.describe().round(2)
#atspausdinama statistika
print(balanso_statistika)

#pavyzdys, kodėl nuspręsta neimti visų stulpelių
#balansas.describe()
       nuosavas_kapitalas  mok_sumos_ir_isipareigojimai  ilgalaikis_turtas  \
count           293906.00                     232648.00          287103.00   
mean            597651.47                     505133.06          724922.37   
std           21716774.86                    6248512.81        25009981.20   
min         -116844716.00                   -1720180.00        -1086489.00   
25%                  0.00                        986.00               0.00   
50%               7919.50                      19750.00            2046.00   
75%              69110.50                     118863.50           35300.00   
max         4488251186.00                 1294716179.00      4488273069.00   

       trumpalaikis_turtas  
count            286985.00  
mean             444163.51  
std             6807408.94  
min            -1771441.00  
25%                2851.00  
50%               21866.00  
75%              112280.00  
max          1505312145.00  
In [237]:
#nustatoma, kad rodytų ne 'scientific' formatu (t.y. ne tokiu formatu: 1.188635e+05)
pd.options.display.float_format = '{:.2f}'.format
#parenkama, kurių stulpelių statistiką rodyti
sujungtos_lentelės_columns = sujungtos_lentelės[['nuosavas_kapitalas', 'mok_sumos_ir_isipareigojimai', 'ilgalaikis_turtas',	'trumpalaikis_turtas', 'ist_kapitalas', 'ist_kapitalas_ekv_eur', 'balansas_viso', 'pelnas_pries_apmokestinima',	'grynasis_pelnas',	'pardavimo_pajamos', 'Vidutinis darbo užmokestis (avgWage)', 'Vidutinis darbo užmokestis II (avgWage2)']]
#nurodoma komanda, kad rodytų statistiką, apvalinama 2 skaičiai po kablelio
sujungtos_lentelės_statistika = sujungtos_lentelės_columns.describe().round(2)
#atspausdinama statistika
print(sujungtos_lentelės_statistika)
       nuosavas_kapitalas  mok_sumos_ir_isipareigojimai  ilgalaikis_turtas  \
count          2210519.00                    2202896.00         2217746.00   
mean            784397.55                     602961.59          933658.56   
std           15461823.34                    5512808.46        19025222.86   
min          -96795095.00                   -1720180.00         -156387.00   
25%               2374.00                       8030.00             133.00   
50%              30747.00                      42632.00           10484.00   
75%             158000.00                     184881.00           85863.00   
max         2887013000.00                  923803000.00      3490689000.00   

       trumpalaikis_turtas  ist_kapitalas  ist_kapitalas_ekv_eur  \
count           2217746.00     2218802.00             2218802.00   
mean             668090.83      286559.61              283441.12   
std             8396558.70     7906434.87             7906152.15   
min            -1771441.00         500.00                 144.81   
25%               13696.00        2606.40                2606.40   
50%               58260.00        2896.00                2896.00   
75%              224811.00       10000.00                9412.00   
max          1505312145.00  1105174899.99          1105174899.99   

       balansas_viso  pelnas_pries_apmokestinima  grynasis_pelnas  \
count     2217746.00                  1473214.00       2211673.00   
mean      1601749.39                   172298.14        101496.36   
std      22974331.47                  3551846.08       2535032.37   
min      -1765282.00               -162020000.00     -72503118.00   
25%         22628.00                    -1854.00         -2259.00   
50%         96654.00                     4504.00          2242.00   
75%        386630.00                    43772.00         25435.00   
max    3546310000.00                626492901.00     554487842.00   

       pardavimo_pajamos  Vidutinis darbo užmokestis (avgWage)  \
count         1978977.00                             866109.00   
mean          1799133.45                               1369.43   
std          33329342.19                               1054.84   
min          -7216177.00                                  2.45   
25%             31967.00                                794.40   
50%            125898.00                               1098.46   
75%            504203.00                               1649.33   
max        7551971000.00                              71423.22   

       Vidutinis darbo užmokestis II (avgWage2)  
count                                   3220.00  
mean                                    1757.95  
std                                     9053.96  
min                                        8.33  
25%                                      271.92  
50%                                      637.27  
75%                                     1592.00  
max                                   306355.77  

¶

3.11 Statistiniai paskaičiavimai pagal išsikeltus uždavinius¶

In [219]:
# Apskaičiuojami kvantiliai (Percentiles calculation)
kvantilis = {
    'Q1 (25_procentilis)': sujungtos_lentelės_columns['balansas_viso'].quantile(0.25),
    'Q2 (50_procentilis_mediana)': sujungtos_lentelės_columns['balansas_viso'].quantile(0.50),
    'Q3 (75_procentilis)': sujungtos_lentelės_columns['balansas_viso'].quantile(0.75),
    'Q4 (Max_vertė)': sujungtos_lentelės_columns['balansas_viso'].max()
}

print("Kvantiliai pagal balanso vertę:")
print(kvantilis)

# Filtruojamos eilutės pagal kvantilius
def gauti_kvantilio_diapazonus(duomenų_rinkinys, stulpelis, kvantilis):
    diapazonai = {
        'Q1 (25_procentilis)': duomenų_rinkinys[duomenų_rinkinys[stulpelis] <= kvantilis['Q1 (25_procentilis)']],
        'Q2 (50_procentilis_mediana)': duomenų_rinkinys[(duomenų_rinkinys[stulpelis] > kvantilis['Q1 (25_procentilis)']) & (duomenų_rinkinys[stulpelis] <= kvantilis['Q2 (50_procentilis_mediana)'])],
        'Q3 (75_procentilis)': duomenu_rinkinys[(duomenu_rinkinys[stulpelis] > kvantilis['Q2 (50_procentilis_mediana)']) & (duomenų_rinkinys[stulpelis] <= kvantilis['Q3 (75_procentilis)'])],
        'Q4 (Max Value)': duomeu_rinkinys[duomenų_rinkinys[stulpelis] > kvantilis['Q3 (75_procentilis)']]
    }
    return diapazonai

kvantilio_diapazonai = gauti_kvantilio_diapazonus(sujungtos_lentelės_columns, 'balansas_viso', kvantilis)



# Stulpeliai vidurkių skaičiavimui
stulpeliai = [
    'pelnas_pries_apmokestinima', 
    'grynasis_pelnas', 
    'ist_kapitalas', 
    'Vidutinis darbo užmokestis (avgWage)'
]


#Paskaičiuojama vidutinė vertė kiekvienam kvantilio diapazonui

for kvantilio_diapazonas, duomenu_diapazonas in kvantilio_diapazonai.items():
        vidurkis = duomenu_diapazonas[stulpeliai].mean()
        print(f"\nVidutinės vertės {kvantilio_diapazonas}:")
        print(vidurkis)
Kvantiliai pagal balanso vertę:
{'Q1 (25_procentilis)': 22628.0, 'Q2 (50_procentilis_mediana)': 96654.0, 'Q3 (75_procentilis)': 386630.0, 'Q4 (Max_vertė)': 3546310000.0}

Vidutinės vertės Q1 (25_procentilis):
pelnas_pries_apmokestinima             -1825.46
grynasis_pelnas                        -1857.67
ist_kapitalas                          11388.98
Vidutinis darbo užmokestis (avgWage)     784.84
dtype: float64

Vidutinės vertės Q2 (50_procentilis_mediana):
pelnas_pries_apmokestinima              4690.12
grynasis_pelnas                         3606.67
ist_kapitalas                          13349.46
Vidutinis darbo užmokestis (avgWage)     947.83
dtype: float64

Vidutinės vertės Q3 (75_procentilis):
pelnas_pries_apmokestinima             20388.84
grynasis_pelnas                        17087.75
ist_kapitalas                          24394.92
Vidutinis darbo užmokestis (avgWage)    1195.99
dtype: float64

Vidutinės vertės Q4 (Max_vertė):
pelnas_pries_apmokestinima              520139.58
grynasis_pelnas                         389709.32
ist_kapitalas                          1096826.91
Vidutinis darbo užmokestis (avgWage)      1813.57
dtype: float64

¶

3.12 Scatter grafikas¶

In [250]:
sujungtos_lentelės.plot(y='grynasis_pelnas',x='balansas_viso', kind='scatter')
Out[250]:
<Axes: xlabel='balansas_viso', ylabel='grynasis_pelnas'>
No description has been provided for this image
In [ ]:
 

4. IŠVADOS¶

Hipotezė patvirtinta paanalizavus vidurkius pagal balanso kvantilius.

4.1 Juridiniai asmenys, kurie patenka į aukščiausią kvantilį (75%) įneša vidutiniškai didesnį įstatintį kapitalą. Juridiniai asmenys, patenkantys į 25% kvantilį įneša vidutiniškai mažiausią įstatinį kapitalą. 4 2.Juridiniai asmenys, kurie patenka į aukščiausią kvantilį (75%) vidutiniškai uždirba didžiausią pelną prieš apmokestinimą bei didžiausią grynąjį pelną. Juridiniai asmenys, patenkantys į 25% kvantilį vidutiniškai patiria nuostolį.n 4

Juridiniai asmenys, kurie patenka į aukščiausią kvantilį (75%) vidutiniškai moka didžiausią darbo užmokestį. Juridiniai asmenys, patenkantys į 25% kvantilį vidutiniškai moka mažiausią darbo užmokestį. užmokestį

5. DUOMENŲ ŠALTINIAI¶

5.1 https://www.registrucentras.lt/p/1094 5.2 https://atvira.sodra.lt/imones/rinkiniai/index.html 5.3 https://osp.stat.gov.lt/statistiniu-rodikliu-analize?indicator=S3R0048#/